Java-位运算
1、左移(<<)
二进制数向左移动一位,低位补0
2、右移(>>)
二进制数向右移动一位,高位补0
当十进制数是负数时,二进制高位均为1,此时右移高位补1
3、无符号右移(>>>)
当十进制数是负数时,二进制高位均为1,此时无符号右移高位补0
4、位与(&)
00、01、10均为0
11为1
5 & 3为1
0101 ---- 5
0011 ---- 3
0001 ---- 1
5、位或(|)
00为0
01、10、11均为1
5 | 3为7
0101 ---- 5
0011 ---- 3
0111 ---- 7
6、位异或(^)
00、11为0
01、10为1
5 ^ 3为6
0101 ---- 5
0011 ---- 3
0110 ---- 6
7、位非(~)
相当于取反
0为1
1为0
~5为-6
0000 …… 0101 ---- 5
1111 …… 1010 ---- -6